package alg

import "fmt"

func BubbleSortRun() {
	//定义一个数组
	arr := []int{3, 1, 12, 7, 17, 30, 15, 50, 55, 76, 75}
	BubbleSort(arr)
	fmt.Println("main arr=", arr, "len=", len(arr))
}

// 冒泡排序, 相邻的两个元素进行两两比较, 顺序相反则交换, 时间复杂度O(n2)
func BubbleSort(arr []int) {
	arrLen := len(arr)
	// 进行两两比较
	for i := 0; i < arrLen - 1 ; i++ {
		fmt.Println("每次 i循环 i = ,", i)
		for j := 0; j < arrLen - 1 - i ; j++ {
			fmt.Println("每次 j循环 j = ,", j, "left: ", arr[j], ", last: ", arr[j + 1])
			if arr[j] > arr[j + 1] {
				arr[j], arr[j + 1] = arr[j + 1], arr[j]
			}
		}
	}
}